1 <Window x:Class="CSWPFTwoLevelGrouping.MainWindow"
2 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
3 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
4 Title="WPF Two Level Grouping Demo" Height="402" Width="534"
5 xmlns:local="clr-namespace:CSWPFTwoLevelGrouping"
6 Loaded="Window_Loaded">
9 <local:GroupItemStyleSelector x:Key="groupItemStyleSelector"/>
11 <!-- Style for the first level GroupItem -->
12 <Style x:Key="GroupHeaderStyleForFirstLevel" TargetType="{x:Type GroupItem}">
13 <Setter Property="Template">
15 <ControlTemplate TargetType="{x:Type GroupItem}">
16 <Expander IsExpanded="True">
18 <TextBlock Text="{Binding Name}" TextBlock.FontWeight="Bold"/>
27 <!-- Style for the second level GroupItem -->
28 <Style x:Key="GroupHeaderStyleForSecondLevel" TargetType="{x:Type GroupItem}">
29 <Setter Property="Template">
31 <ControlTemplate TargetType="{x:Type GroupItem}">
32 <Expander IsExpanded="True" Margin="15,0,0,0">
34 <TextBlock Text="{Binding Name}" TextBlock.FontWeight="Bold"/>
45 <ListView Margin="14,17,16,14" Name="listView1" ItemsSource="{Binding}">
47 <GroupStyle ContainerStyleSelector="{StaticResource groupItemStyleSelector}" />
48 </ListView.GroupStyle>
50 <!-- Set up columns -->
53 <GridViewColumn DisplayMemberBinding="{Binding ID}" Header="ID" Width="50"/>
54 <GridViewColumn DisplayMemberBinding="{Binding Name}" Header="Name" Width="100"/>
55 <GridViewColumn DisplayMemberBinding="{Binding Class}" Header="Class" Width="50"/>
56 <GridViewColumn DisplayMemberBinding="{Binding Grade}" Header="Grade" Width="50"/>